package com.qcby.dao;

import java.util.List;

public interface BaseDao<Q, T> {

    /**
     * 保存数据
     * @param t
     */
    public int insert(T t);

    /**
     * 根据主键查询对象
     * @param id
     * @return
     */
    public T selectByPrimaryKey(Integer id);

    /**
     * 根据主键删除数据
     * @param id
     */
    public int deleteByPrimaryKey(Integer id);

    /**
     * 修改数据
     * @param
     */
    public int updateByPrimaryKeySelective(T t);

    /**
     * 查询所有的记录
     * @return
     */
    public List<T> selectObjectAll();

    /**
     * 根据查询条件来查询数据
     * @param q
     * @return
     */
    public List<T> selectObjectByCondition(Q q);

    /**
     * 根据查询条件来查询符合条件的记录数
     * @param q
     * @return
     */
    public int selectObjectByConditionCount(Q q);

    public List<T> selectObjectByConditionRM(Q q);

    public int selectObjectByConditionRMCount(Q q);

    public List<T> selectObjectByConditionPF(Q q);

    public int selectObjectByConditionPFCount(Q q);

    public List<T> selectObjectByConditionScore(Q q);

    public int selectObjectByConditionScoreCount(Q q);


}